-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BlockSTM] Add latency counter for profiling BlockSTM #6956
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
✅ Forge suite
|
✅ Forge suite
|
✅ Forge suite
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I run the parallel execution only benchmark on this PR, there seems to be no performance degradation. Can you also try the execution benchmark to see the performance?
@danielxiangzl - Yes I ran both Forge and execution benchmark with and without this change and there is no performance degradation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
pub static PARALLEL_EXECUTION_SECONDS: Lazy<Histogram> = Lazy::new(|| { | ||
register_histogram!( | ||
// metric name | ||
"aptos_parallel_execution_seconds", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if it helps to have all these names start with "aptos_execution", in which case we could make this one aptos_execution_seconds and the next one aptos_execution_rayon_seconds or smt similar?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@gelash - The PR got auto-merged, I will sneak the renaming changes in some other PR if that's okay.
// metric name | ||
"aptos_execution_get_next_task_seconds", | ||
// metric description | ||
"The time spent in seconds for getting next task from the scheduler", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Block-STM scheduler (or Block Executor scheduler, or Parallel Executor / execution scheduler)
// metric name | ||
"aptos_execution_work_with_task_seconds", | ||
// metric description | ||
"The time spent in work task with scope call in Block STM", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
seems like most descriptions say parallel execution (or we can use Block STM or parallel / block executor everywhere)
Description
Add some more instrumentation to block STM to understand performance bottlenecks. Also, fix the
APTOS_EXECUTOR_EXECUTE_BLOCK_SECONDS
to measure the latency of the entire function call.Test Plan
Tested with Forge and executor-benchmark and ensures this doesn't introduce any regression.